/**
 * 时间: 2024年1月15日 14点34分
 * 用于提取LCR歌词格式的方法
 * 这里我们封装一个方法
 */

//返回歌词对象的类型定义
type LrcObjectType={
  timer?:string | number | any,
  content?:string,
}
/**
 * @param lrc
 * @return Array<LrcObjectType>
 */
export default function getLrc(lrc:String):Array<LrcObjectType> {
  const p=lrc?.split("[");
  const lyricList:string[]=[];
  const lrcTimeList:string[]=[];
  for (let i = 0; i < p?.length; i++) {
    const p2=p[i]?.split("]");
    lrcTimeList?.push(p2[0]);
    if (p2[1]){
      //使用正则表达式,去除首位空格
      lyricList?.push(p2[1]?.replace(/^\s*|\s*$/g,""));
    }
  }
  /**
   * 这里我们不再这样返回
   */
  // return{
  //   lyricList,
  //   lrcTimeList
  // }
  // 我们将数据整理成一个JSON对象
  //这个对象包括timer与歌词两个部分
  //关于歌词与时间的保留问题,我们优先保留时间,
  //这样做的原因是保证歌曲时间的正确性

  const lrcObjectList:Array<LrcObjectType>=[];
  //遍历歌词
  for (let i = 0; i < lrcTimeList?.length; i++) {
    const tempObject:LrcObjectType={};
    //整理毫秒数
    const a1=lrcTimeList[i]?.split(".")[0];
    const a2:any=a1?.split(":");
    const secondId=a2[0]*60+a2[1]*1;//获取成功
    tempObject.content=lyricList[i-1];
    tempObject.timer=secondId;
    lrcObjectList?.push(tempObject);
  }

  return lrcObjectList;
}


